﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;
// añadidas a ultima hora.
using MySql.Data.MySqlClient;
using MySql.Data.Types;
using System.Data.Sql;
using System.Data.SqlClient;

namespace GCon
{
    /// <summary>
    /// Clase contenedores de informes
    /// </summary>
    public class Con_Informes_Pago
    {
        /// <summary>
        /// Constructor por defecto
        /// </summary>
        public Con_Informes_Pago()
        {
            dInformes = new Dictionary<String, Con_InformePago>();
        }

        public void InformePagosEsperadosA(String _DESDE, String _HASTA)
        {
            MySqlConnection oConexion;
            MySqlDataAdapter oAdaptador;
            DataSet ds;
            String llamada;
            Con_InformePago oInforme;
            int cont;
            cont = 0;

            oConexion = new MySqlConnection();
            oConexion.ConnectionString = "Server=localhost;Database=MERYLAND;Uid=root;Pwd=MERYLAND;";
            oConexion.Open();

            llamada = "CALL InformePagosEsperadosA('" + _DESDE + "','" + _HASTA + "')";
            oAdaptador = new MySqlDataAdapter(llamada, oConexion);
            ds = new DataSet();
            oAdaptador.Fill(ds, "Tabla");

            foreach (DataRow dr in ds.Tables[0].Rows)
            {

                cont = cont + 1;
                oInforme = new Con_InformePago(dr["ALUMNO_NOMBRE"].ToString(), dr["ALUMNO_APELLIDO1"].ToString(), dr["ALUMNO_APELLIDO2"].ToString(), dr["ALUMNO_NIF"].ToString(), dr["RECIBO_IMPORTE"].ToString(), dr["RECIBO_FECHA_EMISION"].ToString(), dr["RECIBO_PAGADO"].ToString());
                dInformes.Add(cont.ToString(), oInforme);
                oInforme = null;

            }

            oConexion.Close();
        }

        public void InformePagosEsperadosO(String _DESDE, String _HASTA)
        {
            MySqlConnection oConexion;
            MySqlDataAdapter oAdaptador;
            DataSet ds;
            String llamada;
            Con_InformePago oInforme;
            int cont;
            cont = 0;

            oConexion = new MySqlConnection();
            oConexion.ConnectionString = "Server=localhost;Database=MERYLAND;Uid=root;Pwd=MERYLAND;";
            oConexion.Open();

            llamada = "CALL InformePagosEsperadosO('" + _DESDE + "','" + _HASTA + "')";
            oAdaptador = new MySqlDataAdapter(llamada, oConexion);
            ds = new DataSet();
            oAdaptador.Fill(ds, "Tabla");

            foreach (DataRow dr in ds.Tables[0].Rows)
            {

                cont = cont + 1;
                oInforme = new Con_InformePago(dr["ALUMNO_NOMBRE"].ToString(), dr["ALUMNO_APELLIDO1"].ToString(), dr["ALUMNO_APELLIDO2"].ToString(), dr["ALUMNO_NIF"].ToString(), dr["RECIBO_IMPORTE"].ToString(), dr["RECIBO_FECHA_EMISION"].ToString(), dr["RECIBO_PAGADO"].ToString());
                dInformes.Add(cont.ToString(), oInforme);
                oInforme = null;

            }

            oConexion.Close();
        }

        public void InformePagosEsperadosB(String _DESDE, String _HASTA)
        {
            MySqlConnection oConexion;
            MySqlDataAdapter oAdaptador;
            DataSet ds;
            String llamada;
            Con_InformePago oInforme;
            int cont;
            cont = 0;

            oConexion = new MySqlConnection();
            oConexion.ConnectionString = "Server=localhost;Database=MERYLAND;Uid=root;Pwd=MERYLAND;";
            oConexion.Open();

            llamada = "CALL InformePagosEsperadosB('" + _DESDE + "','" + _HASTA + "')";
            oAdaptador = new MySqlDataAdapter(llamada, oConexion);
            ds = new DataSet();
            oAdaptador.Fill(ds, "Tabla");

            foreach (DataRow dr in ds.Tables[0].Rows)
            {

                cont = cont + 1;
                oInforme = new Con_InformePago(dr["ALUMNO_NOMBRE"].ToString(), dr["ALUMNO_APELLIDO1"].ToString(), dr["ALUMNO_APELLIDO2"].ToString(), dr["ALUMNO_NIF"].ToString(), dr["RECIBO_IMPORTE"].ToString(), dr["RECIBO_FECHA_EMISION"].ToString(), dr["RECIBO_PAGADO"].ToString());
                dInformes.Add(cont.ToString(), oInforme);
                oInforme = null;

            }

            oConexion.Close();
        }

        public void InformePagosEsperadosT(String _DESDE, String _HASTA)
        {
            MySqlConnection oConexion;
            MySqlDataAdapter oAdaptador;
            DataSet ds;
            String llamada;
            Con_InformePago oInforme;
            int cont;
            cont = 0;

            oConexion = new MySqlConnection();
            oConexion.ConnectionString = "Server=localhost;Database=MERYLAND;Uid=root;Pwd=MERYLAND;";
            oConexion.Open();

            llamada = "CALL InformePagosEsperadosT('" + _DESDE + "','" + _HASTA + "')";
            oAdaptador = new MySqlDataAdapter(llamada, oConexion);
            ds = new DataSet();
            oAdaptador.Fill(ds, "Tabla");

            foreach (DataRow dr in ds.Tables[0].Rows)
            {

                cont = cont + 1;
                oInforme = new Con_InformePago(dr["ALUMNO_NOMBRE"].ToString(), dr["ALUMNO_APELLIDO1"].ToString(), dr["ALUMNO_APELLIDO2"].ToString(), dr["ALUMNO_NIF"].ToString(), dr["RECIBO_IMPORTE"].ToString(), dr["RECIBO_FECHA_EMISION"].ToString(), dr["RECIBO_PAGADO"].ToString());
                dInformes.Add(cont.ToString(), oInforme);
                oInforme = null;

            }

            oConexion.Close();
        }

        public void InformePagosNoRealizadosA(String _DESDE, String _HASTA)
        {
            MySqlConnection oConexion;
            MySqlDataAdapter oAdaptador;
            DataSet ds;
            String llamada;
            Con_InformePago oInforme;
            int cont;
            cont = 0;

            oConexion = new MySqlConnection();
            oConexion.ConnectionString = "Server=localhost;Database=MERYLAND;Uid=root;Pwd=MERYLAND;";
            oConexion.Open();

            llamada = "CALL InformePagosNoRealizadosA('" + _DESDE + "','" + _HASTA + "')";
            oAdaptador = new MySqlDataAdapter(llamada, oConexion);
            ds = new DataSet();
            oAdaptador.Fill(ds, "Tabla");

            foreach (DataRow dr in ds.Tables[0].Rows)
            {

                cont = cont + 1;
                oInforme = new Con_InformePago(dr["ALUMNO_NOMBRE"].ToString(), dr["ALUMNO_APELLIDO1"].ToString(), dr["ALUMNO_APELLIDO2"].ToString(), dr["ALUMNO_NIF"].ToString(), dr["RECIBO_IMPORTE"].ToString(), dr["RECIBO_FECHA_EMISION"].ToString(), dr["RECIBO_PAGADO"].ToString());
                dInformes.Add(cont.ToString(), oInforme);
                oInforme = null;

            }

            oConexion.Close();
        }

        public void InformePagosNoRealizadosB(String _DESDE, String _HASTA)
        {
            MySqlConnection oConexion;
            MySqlDataAdapter oAdaptador;
            DataSet ds;
            String llamada;
            Con_InformePago oInforme;
            int cont;
            cont = 0;

            oConexion = new MySqlConnection();
            oConexion.ConnectionString = "Server=localhost;Database=MERYLAND;Uid=root;Pwd=MERYLAND;";
            oConexion.Open();

            llamada = "CALL InformePagosNoRealizadosB('" + _DESDE + "','" + _HASTA + "')";
            oAdaptador = new MySqlDataAdapter(llamada, oConexion);
            ds = new DataSet();
            oAdaptador.Fill(ds, "Tabla");

            foreach (DataRow dr in ds.Tables[0].Rows)
            {

                cont = cont + 1;
                oInforme = new Con_InformePago(dr["ALUMNO_NOMBRE"].ToString(), dr["ALUMNO_APELLIDO1"].ToString(), dr["ALUMNO_APELLIDO2"].ToString(), dr["ALUMNO_NIF"].ToString(), dr["RECIBO_IMPORTE"].ToString(), dr["RECIBO_FECHA_EMISION"].ToString(), dr["RECIBO_PAGADO"].ToString());
                dInformes.Add(cont.ToString(), oInforme);
                oInforme = null;

            }

            oConexion.Close();
        }

        public void InformePagosNoRealizadosO(String _DESDE, String _HASTA)
        {
            MySqlConnection oConexion;
            MySqlDataAdapter oAdaptador;
            DataSet ds;
            String llamada;
            Con_InformePago oInforme;
            int cont;
            cont = 0;

            oConexion = new MySqlConnection();
            oConexion.ConnectionString = "Server=localhost;Database=MERYLAND;Uid=root;Pwd=MERYLAND;";
            oConexion.Open();

            llamada = "CALL InformePagosNoRealizadosO('" + _DESDE + "','" + _HASTA + "')";
            oAdaptador = new MySqlDataAdapter(llamada, oConexion);
            ds = new DataSet();
            oAdaptador.Fill(ds, "Tabla");

            foreach (DataRow dr in ds.Tables[0].Rows)
            {

                cont = cont + 1;
                oInforme = new Con_InformePago(dr["ALUMNO_NOMBRE"].ToString(), dr["ALUMNO_APELLIDO1"].ToString(), dr["ALUMNO_APELLIDO2"].ToString(), dr["ALUMNO_NIF"].ToString(), dr["RECIBO_IMPORTE"].ToString(), dr["RECIBO_FECHA_EMISION"].ToString(), dr["RECIBO_PAGADO"].ToString());
                dInformes.Add(cont.ToString(), oInforme);
                oInforme = null;

            }

            oConexion.Close();
        }

        public void InformePagosNoRealizadosT(String _DESDE, String _HASTA)
        {
            MySqlConnection oConexion;
            MySqlDataAdapter oAdaptador;
            DataSet ds;
            String llamada;
            Con_InformePago oInforme;
            int cont;
            cont = 0;

            oConexion = new MySqlConnection();
            oConexion.ConnectionString = "Server=localhost;Database=MERYLAND;Uid=root;Pwd=MERYLAND;";
            oConexion.Open();

            llamada = "CALL InformePagosNoRealizadosT('" + _DESDE + "','" + _HASTA + "')";
            oAdaptador = new MySqlDataAdapter(llamada, oConexion);
            ds = new DataSet();
            oAdaptador.Fill(ds, "Tabla");

            foreach (DataRow dr in ds.Tables[0].Rows)
            {

                cont = cont + 1;
                oInforme = new Con_InformePago(dr["ALUMNO_NOMBRE"].ToString(), dr["ALUMNO_APELLIDO1"].ToString(), dr["ALUMNO_APELLIDO2"].ToString(), dr["ALUMNO_NIF"].ToString(), dr["RECIBO_IMPORTE"].ToString(), dr["RECIBO_FECHA_EMISION"].ToString(), dr["RECIBO_PAGADO"].ToString());
                dInformes.Add(cont.ToString(), oInforme);
                oInforme = null;

            }

            oConexion.Close();
        }

        public void InformePagosRealizadosA(String _DESDE, String _HASTA)
        {
            MySqlConnection oConexion;
            MySqlDataAdapter oAdaptador;
            DataSet ds;
            String llamada;
            Con_InformePago oInforme;
            int cont;
            cont = 0;

            oConexion = new MySqlConnection();
            oConexion.ConnectionString = "Server=localhost;Database=MERYLAND;Uid=root;Pwd=MERYLAND;";
            oConexion.Open();

            llamada = "CALL InformePagosRealizadosA('" + _DESDE + "','" + _HASTA + "')";
            oAdaptador = new MySqlDataAdapter(llamada, oConexion);
            ds = new DataSet();
            oAdaptador.Fill(ds, "Tabla");

            foreach (DataRow dr in ds.Tables[0].Rows)
            {

                cont = cont + 1;
                oInforme = new Con_InformePago(dr["ALUMNO_NOMBRE"].ToString(), dr["ALUMNO_APELLIDO1"].ToString(), dr["ALUMNO_APELLIDO2"].ToString(), dr["ALUMNO_NIF"].ToString(), dr["RECIBO_IMPORTE"].ToString(), dr["RECIBO_FECHA_EMISION"].ToString(), dr["RECIBO_PAGADO"].ToString());
                dInformes.Add(cont.ToString(), oInforme);
                oInforme = null;

            }

            oConexion.Close();
        }

        public void InformePagosRealizadosB(String _DESDE, String _HASTA)
        {
            MySqlConnection oConexion;
            MySqlDataAdapter oAdaptador;
            DataSet ds;
            String llamada;
            Con_InformePago oInforme;
            int cont;
            cont = 0;

            oConexion = new MySqlConnection();
            oConexion.ConnectionString = "Server=localhost;Database=MERYLAND;Uid=root;Pwd=MERYLAND;";
            oConexion.Open();

            llamada = "CALL InformePagosRealizadosB('" + _DESDE + "','" + _HASTA + "')";
            oAdaptador = new MySqlDataAdapter(llamada, oConexion);
            ds = new DataSet();
            oAdaptador.Fill(ds, "Tabla");

            foreach (DataRow dr in ds.Tables[0].Rows)
            {

                cont = cont + 1;
                oInforme = new Con_InformePago(dr["ALUMNO_NOMBRE"].ToString(), dr["ALUMNO_APELLIDO1"].ToString(), dr["ALUMNO_APELLIDO2"].ToString(), dr["ALUMNO_NIF"].ToString(), dr["RECIBO_IMPORTE"].ToString(), dr["RECIBO_FECHA_EMISION"].ToString(), dr["RECIBO_PAGADO"].ToString());
                dInformes.Add(cont.ToString(), oInforme);
                oInforme = null;

            }

            oConexion.Close();
        }

        public void InformePagosRealizadosO(String _DESDE, String _HASTA)
        {
            MySqlConnection oConexion;
            MySqlDataAdapter oAdaptador;
            DataSet ds;
            String llamada;
            Con_InformePago oInforme;
            int cont;
            cont = 0;

            oConexion = new MySqlConnection();
            oConexion.ConnectionString = "Server=localhost;Database=MERYLAND;Uid=root;Pwd=MERYLAND;";
            oConexion.Open();

            llamada = "CALL InformePagosRealizadosO('" + _DESDE + "','" + _HASTA + "')";
            oAdaptador = new MySqlDataAdapter(llamada, oConexion);
            ds = new DataSet();
            oAdaptador.Fill(ds, "Tabla");

            foreach (DataRow dr in ds.Tables[0].Rows)
            {

                cont = cont + 1;
                oInforme = new Con_InformePago(dr["ALUMNO_NOMBRE"].ToString(), dr["ALUMNO_APELLIDO1"].ToString(), dr["ALUMNO_APELLIDO2"].ToString(), dr["ALUMNO_NIF"].ToString(), dr["RECIBO_IMPORTE"].ToString(), dr["RECIBO_FECHA_EMISION"].ToString(), dr["RECIBO_PAGADO"].ToString());
                dInformes.Add(cont.ToString(), oInforme);
                oInforme = null;

            }

            oConexion.Close();
        }

        public void InformePagosRealizadosT(String _DESDE, String _HASTA)
        {
            MySqlConnection oConexion;
            MySqlDataAdapter oAdaptador;
            DataSet ds;
            String llamada;
            Con_InformePago oInforme;
            int cont;
            cont = 0;

            oConexion = new MySqlConnection();
            oConexion.ConnectionString = "Server=localhost;Database=MERYLAND;Uid=root;Pwd=MERYLAND;";
            oConexion.Open();

            llamada = "CALL InformePagosRealizadosT('" + _DESDE + "','" + _HASTA + "')";
            oAdaptador = new MySqlDataAdapter(llamada, oConexion);
            ds = new DataSet();
            oAdaptador.Fill(ds, "Tabla");

            foreach (DataRow dr in ds.Tables[0].Rows)
            {

                cont = cont + 1;
                oInforme = new Con_InformePago(dr["ALUMNO_NOMBRE"].ToString(), dr["ALUMNO_APELLIDO1"].ToString(), dr["ALUMNO_APELLIDO2"].ToString(), dr["ALUMNO_NIF"].ToString(), dr["RECIBO_IMPORTE"].ToString(), dr["RECIBO_FECHA_EMISION"].ToString(), dr["RECIBO_PAGADO"].ToString());
                dInformes.Add(cont.ToString(), oInforme);
                oInforme = null;

            }

            oConexion.Close();
        }

        public Con_InformePago GetInforme(String Id)
        {
            return this.dInformes[Id];
        }

        public int cuenta()
        {
            return this.dInformes.Count;
        }

        ///Atributos
        private Dictionary<String, Con_InformePago> dInformes;
    }
}